查看原文
其他

武侠小说中的数学




本文授权载自:道和老师教数学(ID:daoheMath)




01


古人是如何开平方的?


封面图为老顽童周伯通和瑛姑~



▍引子


在金庸的武侠小说当中,常常出现与中国古代数学有关的内容,比如在《射雕英雄传》之中就有这么一段情节:


黄蓉坐了片刻,精神稍复,见地下那些竹片都是长约四寸,阔约二分,知是计数用的算子。再看那些算子排成商、实、法、借算四行,暗点算子数目,知她正在计算五万五千二百二十五的平方根,这时“商”位上已记算到二百三十,但见那老妇拨弄算子,正待算那第三位数字。黄蓉脱口道:“五!二百三十五!”
  那老妇吃了一惊,抬起头来,一双眸子精光闪闪,向黄蓉怒目而视,随即又低头拨弄算子。这一抬头,郭、黄二人见她容色清丽,不过四十左右年纪,想是思虑过度,是以鬓边早见华发。那女子搬弄了一会,果然算出是“五”,抬头又向黄蓉望了一眼,脸上惊讶的神色迅即消去,又见怒容,似乎是说:“原来是个小姑娘。你不过凑巧猜中,何足为奇?别在这里打扰我的正事。”顺手将“二百三十五”五字记在纸上,又计下一道算题。


83版射雕中正在低头算题的瑛姑

这段故事当中,郭靖与黄蓉被铁掌派追杀,郭、黄二人无意中闯到瑛姑的小屋中,正巧撞见瑛姑正在算这样一道开平方的问题。

那么小说当中,宋朝人用来计算平方根的方法是什么呢?我们今天就来介绍一下


▍增乘开方法


小说中所提到的这种计算平方根的方法叫做增乘开方法,是由我国古代数学家贾宪在十一世纪中叶所提出来的,其方法与意大利数学家鲁裴尼(P.Ruffini)和英国数学家霍纳(W.G.Horner)所提出来的高次方程数值解法相同,但比他们早了750年。


此处本该有个贾宪的照片,然而我没找到

那么增乘开方法是如何来计算一个数的平方根的呢?


▍举个例子



我们就以小说中瑛姑所计算的求55,225的平方根这个问题为例(为了便于理解我们就直接用阿拉伯数字来表示,就不用算筹啦):


首先我们把55,225放入实这一行;




1)由于55,225是一个五位数,因此我们估算商应当是一个三位数,并且由于万位上的数是5,所以估计商的百位数是2(200的平方是40,000,而300的平方是90,000,所以商的百位数一定是2)

2)令借为1,法的值则为借乘商(1×2)


3)更新实,使之为原实减去商乘法(5-2×2=1),则新实为1

4)更新法为商乘借加到旧法上,(2+2×1=4)

5)将法后移一位,借后移两位


然后我们再次重复1)到5)的循环;

1)估算商的十位为3(3×4,000=12,000<15,225)

2)更新法,为原法加十位商乘借(4,000+3×100=4,300)

3)更新实,使之为原实减去商乘法(15,225-4,300×3=2,325),则新实为2325

4)更新法为商乘借加到旧法上,(43+3×1=46)

5)将法后移一位,借后移两位

第二轮结束,第三轮开始,再一次重复这五个步骤,

1)估算商的个位为5;

2)更新法,为原法加个位商乘借(460+5×1=465)

3)更新实,使之为原实减去商乘法(2325-465×5=0);

到这一步我们惊喜的发现,实的值为0了,也就是说我们最后解出来了55,225的平方根为235

我们可以再验证一下,计算235的平方

发现235的平方果然是55,225,也就是说我们的计算结果是正确的。


▍总结

总结一下,增乘开方法其实就是一共五个步骤:

  1. 估算商;

  2. 用商乘借加到法上;

  3. 实减去商乘法;

  4. 再用商乘借加到法上;

  5. 法后移一位,借后移两位。

然后只要不断地循环上述步骤,直到实为0,此时的商就是我们所求的平方根的值啦~

虽然步骤比较抽象,但是对照着例子还是比较容易理解的~



▍参考资料

[1] 金庸射雕英雄传[M]. 北京生活·读书·新知三联书店, 1994.

[2] 梅荣照贾宪的增乘开方法——高次方程数值解的关键一步[J]. 自然科学史研究, 1989, (01): 1-8.





02


如何用增乘开方法开更高次方?


封面图是郭靖黄蓉~

▍引子

我们先继续来看小说中的情节,上一次我们说到,郭靖黄蓉二人误打误撞来到了瑛姑的小屋,看到她正在计算一道开平方的问题,我们继续来看小说后面的内容:


这次是求三千四百零一万二千二百二十四的立方根,她刚将算子排为商、实、方法、廉法、隅、下法六行,算到一个“三”,黄蓉轻轻道:“三百二十四。”那女子“哼”了一声,哪里肯信?布算良久,约一盏茶时分,方始算出,果然是三百二十四。


接下来瑛姑又计算了一道开立方的问题,那么如何来开一个数的立方根呢?其实上一次我们所讲的增乘开方法,不只能用来开平方根,还能用来开立方以及更高次方的根。今天我们就来介绍一下如何用增乘开方法开更高次的平方。


▍小说中的bug


书中所写故事的时代背景是写到成吉思汗去世为止,成吉思汗死于公元1127年,而关于贾宪的增乘开方法的提出时间,所能找到的最早的记载是杨辉的《详解九章算法纂类》,该书写于1261年。


也就是说,瑛姑所用的开平方的方法,如果按照时间关系上来看,所用的应该是时间更早的《九章算术》中的开平方的方法;但如果根据书中所写的瑛姑把算筹摆成“商、实、法、借”四行的话,就应该用的是贾宪的增乘开方法了。


而瑛姑所用的开立方的方法,将算子摆为六行,又是《九章算术》的方法了,用增乘开方法的话只需要摆成五行就够了。


增乘开方法是贾宪在《九章算术》中开方的方法的基础上,对传统方法进行改进,并推广到了开更高次方的情况,因此,我们还是主要来介绍增乘开方法。

说了这么多,今天的主要内容就正式开始啦

▍先复个习


我们先来复习一下,之前所讲的增乘开方法的五个步骤:

  • 估算商;

  • 用商乘借加到法上;

  • 实减去商乘法;

  • 再用商乘借加到法上;

  • 法后移一位,借后移两位。

只要不断循环这五个步骤,直到实变为0,所得到的商就是我们的结果啦


开平方与开立方的方法是类似的,我们介绍完开立方的方法之后,再经过类比,推广出开任意次方的方法。


▍举个例子

接下来我们还是以小说中的这道题为例来计算,为了便于理解,我把每一步计算所变化的数框了起来~


先将被开方数放到实的位置上,并将1置于下法:

将下法的1每次向前移动两格,共移动了三次,说明商应当是一个三位数:

接下来正式开始计算啦~

1)估算商的值为3(3的三次方为27,小于34):

2)用商乘下法置于廉(3×1=3),再用商乘廉置于方(3×3=9):

3)实减去商乘方(34-3×9=7):

4)商乘下法加到廉(3×1+3=6),商乘廉加到方(9+3×6=27):

在用商乘下法加到廉(3×1+6=9):

5)将方、廉、下法一次向后退1、2、3格:

然后我们就可以开始下一个循环啦

1)估计商的十位为2:

2)商乘下法加到廉,商乘廉加到方:

3)实减去商乘方:

4)商乘下法加到廉,商乘廉加到方,商乘下法加到廉:

5)将方、廉、下法一次向后退1、2、3格:

第二个循环结束,开始第三遍啦~

1)估计商的个位为4:

2)商乘下法加到廉,商乘廉加到方:

3)实减去商乘方:

我们惊喜的发现,实变成了0,也就是说,我们所求的34,012,224的立方根就是324啦~

▍开立方的步骤



我们来总结一下,开立方其实也是五个步骤:

  1.估算商;

  2.商乘下法加到廉,商乘廉加到方;

  3.实减去商乘方;

  4.商乘下法加到廉,商乘廉加到方,商乘下法加到廉;

  5.将方、廉、下法一次向后退1、2、3格。

和开平方的步骤一样,接下来只要不断地循环以上步骤,直到实为0,此时的商便是所求的根啦~


▍推广到开任意次方的步骤


我们先把开平方和开立方的步骤放到一起来对比一下:


从这个表格中我们能够非常容易的找到规律,从而总结出用增乘开方法开任意正整数次方的方法。


假设我们要求一个数的n次方(n为正整数),那么我们共需要写出n+2行,前两行分别是商和实,其余的n行我们用N1、N2、···、Nn来表示。

将被开方数放入实这一行,在Nn上的最后一格放上一个1,将Nn上的1向左移动,每次移动n-1格,在下一次移动便会超出实的时候停止,此时1移动的次数便是商的位数。

接下来,我们就可以开始进行五个步骤循环的计算啦~

1)估算商。估计出一个商的第一位数的值,设它为a1,a1的n次方应当小于1上面的实的值,而a1+1的n次方是大于它的。

2)依次从下到上填入数字,Nn中已经填入了1,接下来

Nn-1=a1×1

Nn-2=a1×Nn-1

.

.

.

N1=a1×N2

3)更新实。新的实=原实-N1×a1

4)更新从N1到Nn


第1轮:

Nn-1=a1×1+Nn-1

Nn-2=a1×Nn-1+Nn-2

.

.

.

N1=a1×N2

第2轮:

Nn-1=a1×1+Nn-1

Nn-2=a1×Nn-1+Nn-2

.

.

.

N2=a1×N3

如此不断循环下去,一直重复到第n-2轮,只剩下一步,Nn-2=a1×Nn-1+Nn-2为止。

5)将从N1到Nn上的数依次向后移动1、2、3、...n个格。


接下来只要重复上述几个步骤,直至实变为0为止。

如果是无法开出整数的情况的话,实便永远除不尽,便可以不断地重复上述步骤,得到后面无穷无尽的小数啦~


▍参考资料

[1] 金庸射雕英雄传[M]. 北京生活·读书·新知三联书店, 1994.

[2] 梅荣照贾宪的增乘开方法——高次方程数值解的关键一步[J]. 自然科学史研究, 1989, (01): 1-8.

[3] 李兆华增乘开方法与贾宪三角形[J]. 中等数学, 1986, (1): 44-45.




03


幻方、九宫八卦与河图洛书


封面图为河图与洛书

▍引子


接下来我们继续来看小说中的内容,情节并没有任何进展,郭黄二人还在瑛姑的小屋中,黄蓉和瑛姑开始讨论关于幻方的内容(说是讨论,其实是学霸黄蓉对学渣瑛姑的碾压),首先是瑛姑给黄蓉出了一道三阶幻方的问题,被黄蓉嘲笑说你这题太小儿科我根本不放在眼里,原文如下:

那女子沮丧失色,身子摇了几摇,突然一交跌在细沙之中,双手捧头,苦苦思索,过了一会,忽然抬起头来,脸有喜色,道:“你的算法自然精我百倍,可是我问你:将一至九这九个数字排成三列,不论纵横斜角,每三字相加都是十五,如何排法?”

黄蓉心想:“我爹爹经营桃花岛,五行生克之变,何等精奥?这九宫之法是桃花岛阵图的根基,岂有不知之理?”当下低声诵道:“九宫之义,法以灵龟,二四为肩,六八为足,左三右七,戴九履一,五居中央。”边说边画,在沙上画了一个九宫之图。
  那女子面如死灰,叹道:“只道这是我独创的秘法,原来早有歌诀传世。”

那我们就来看一下瑛姑出的这道九宫图。


▍九宫图(三阶幻方)

瑛姑所出的题目呢其实就是,将1~9这9个数填入下面的三乘三的表格中,使得横、竖、斜相加之和都是十五。


可能很多同学觉得这个太简单了,我小学的时候就会做了,确实这个问题难度不大,不过黄蓉所说的口诀还是蛮有意思的,我们来看一下:


九宫之义,法以灵龟,二四为肩,六八为足,左三右七,戴九履一,五居中央。


啥意思咧,意思是将这个九宫图当成一个龟,2和4放在龟的肩膀上,6和8放在龟的脚上,左边是3,右边是7,头上是9,尾巴是1,5在中间。

需要注意的是,古代写字是从右往左写的,所以“二四为肩,六八为足”也是要按照从右往左写的顺序来的。

我们按照口诀来画到龟龟上,就是这样了:


把它整理到表格上:

其实这个图形,就是我们古代所说的洛书,就是封面图的这个样子:



这个图中小圆圈的数量就分别代表了所对应的数字;据传说,有神龟从洛水中出现,背上驮着的就是洛书,伏羲氏得到它据此画出了八卦(河出图,洛出书,圣人则之。)
下面这个图就是神龟背上驮着洛书的样子:



▍四四图(四阶幻方)


接下来,黄蓉又继续往下介绍了关于幻方的内容:

那女子面如死灰,叹道:“只道这是我独创的秘法,原来早有歌诀传世。”黄蓉笑道:“不但九宫,即使四四图,五五图,以至百子图,亦不足为奇。就说四四图罢,以十六字依次作四行排列,先以四角对换,一换十六,四换十三,后以内四角对换,六换十一,七换十。这般横直上下斜角相加,皆是三十四。”那女子依法而画,果然丝毫不错。

我们来按照黄蓉所说的方法来填一下:

首先把数字从一到十六顺次放入表格中,


接下来将四个角分别对换位置:



再将里面的四个角互相交换位置:



这样我们所得到的幻方的横、竖、斜相加都是34啦~


▍九宫八卦图


说完这些,黄蓉又继续介绍:

黄蓉道:“那九宫每宫又可化为一个八卦,八九七十二数,以从一至七十二之数,环绕九宫成圈,每圈八字,交界之处又有四圈,一共一十三圈,每圈数字相加,均为二百九十二。这洛书之图变化神妙如此,谅你也不知晓。”举手之间,又将七十二数的九宫八卦图在沙上画了出来。

这个九宫八卦图看起来有点难,其实呢只需要圈内的数字相加起来相等就好了,并不需要横、竖、斜相加相等,所以也不是很难啦~

这一题小说里没有说如何来解,那我们就一起来解解看好了。

先按照书中所说的内容把图画出来:

如图所示,八个数围成一个圈,九宫格的九个圈加上交界处的四个圈一共十三个圈,我们要在这十三个圈中填入72个数,使得每个圈中的数字之和为292。

仔细观察这个图,我们能够发现我们可以把每斜着的两个数看做一组,


这样这个图就可以简化成这样:


只要我们能让这个图中每个中的数字相等,也就是每两个数的和相等,就能够满足题里的要求啦~想让各组数相等,可就简单的多了, 只需要把从1到72这些数首尾配对、两两一组,即1与72一组,2与71一组,以此类推,再把各组数分别填入就好啦,我们最后得到的答案是这样的:


▍小结


总结一下,这次我们主要介绍了三阶幻方(洛书)、四阶幻方(四四图)以及九宫八卦图这三种幻方。

关于幻方,其实是有着通用的解法的,通常要分为奇数阶、单偶数阶和双偶数阶这三种情况来讨论,不过具体解法比较复杂篇幅有限,我们就以后有机会再来介绍好啦~


▍参考资料


[1] 金庸射雕英雄传[M]. 北京生活·读书·新知三联书店, 1994.




03


七曜九执天竺笔算



我们继续来看一下书中的情节:书中瑛姑因为和黄药师有仇,而黄蓉又是黄药师的女儿,于是瑛姑就和黄蓉吵了起来,黄蓉为了刁难瑛姑就给她出了三道难题。

书中是这样写的:


黄蓉气极,正欲反唇相讥,一转念间,扶着郭靖站起身来,用竹杖在地下细沙上写了三道算题:


第一道是包括日、月、水、火、木、金、土、罗睺、计都的“七曜九执天竺笔算”;第二道是“立方招兵支银给米题”;第三道是道“鬼谷算题”:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”


接下来我们将会分三篇文章来介绍这三道难题,这一次我们先来讲『七曜九执天竺笔算』这一题。


先来解释一下这个的名字,『七曜』指的是中国古代对日(太阳)、月(太阴)与金(太白)、木(岁星)、水(辰星)、火(荧惑)、土(填星、镇星)这七个天体。『九执』是上面这七个天体加上『罗睺』和『计都』统称为九执(罗睺和计都是印度天文学家假想的两个天体,实际上是黄、白道相交的升交点和降交点)。『天竺』是我国古代对印度的称呼。


所以说,其实所谓的『七曜九执天竺笔算』并非是一道算题,而是一种历法,它指的是从印度传来的『九执历』。它在唐朝瞿昙悉达所著的《开元占经》第一百零四卷中有详细的介绍。


开元占经部分原文


九执历是印度七世纪较为先进的历法,由唐朝太史监(国家天文学机构)的印度裔天文学和历法家 瞿昙悉达 于公元718年(开元六年)奉诏翻译,录载于其所编撰的《开元占经》第104卷,它是研究印度高代天文学的珍贵资料。印度《九执历》有推算日、月运行和交食预报等方法,它将周天分为360度,1度分为60分;一昼夜分为60刻,每刻60分,采用十九年七闰法,其恒星年为365.2762日,朔望月为29.530583日。


《九执历》用本轮均轮系统推算日、月的不均匀运动,计算时使用三角函数的方法,其远日点定在夏至点前10度。中国清代顾观光著《九执历解》是在清初传入西法的基础上,对《开元占经》所载《九执历》所做的详细解说,但有误解之处。


九执历以二月春分朔为历元,周天为三百六十度;三十为一相(相当于黄道十二宫的宫),六十为一交,十二相为周天;以两月为时,六时为岁;把从朔到望叫白博叉,从望到朔叫黑博叉。推算交食的食限是用合朔时月亮离交点及月亮黄纬来表示。规定当日、月合朔发生在距交点的黄道度数不超过12°时,即发生交食;交点以6794日退行一周天。《九执历》还在计算视差对交食的影响、月食全部见食时间、以及昼夜长等方面,有独特方法。


由于这一内容实际上是天文历法,并没有涉及到比较有意义的数学知识,所以为了系列文章的完整性,我们只对九执历进行比较简单的介绍但没有去详细地解释它的具体方法。

好了,这一篇文章就到此结束了。

▍参考资料


[1]  瞿昙悉达唐. 开元占经[M]. 中央编译, 2006.

[2]  黄心川主编, 葛维钧.涂厚善.袁传伟等副主编. 南亚大词典[M]. 四川人民出版社, 1998.

[3]  金庸. 射雕英雄传[M]. 生活·读书·新知三联书店, 1999.

[4]  郑天挺.吴泽.杨志玖主编, 翁独健.蔡美彪.李学勤等副主编. 中国历史大辞典 • 上卷[M]. 上海辞书出版社, 2000.


              

        

欢迎各位读者解答投稿:投稿邮箱cui1125@163.com,微信154358747,来信请写明作者姓名(或者推送时用的昵称)以及所在省份。投稿的稿件请用word,谢谢! 

nd



荐读:

最新高三模拟试题大全

2021届新高三数学优秀微课在线视频集合

2021届新高三(函数导数+三角向量+数列不等式+解析几何+立体几何+概率统计)复习大全

2020竞赛强基试题及答案集合



看更多精彩文章
请长按下方图片扫码关注

奇趣数学苑


戳原文,有惊

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存